<?php

namespace app\common\validate;

use app\model\store\StoreManager;
use think\Validate;

class StoreManagerValidate extends Validate
{

    protected $rule =   [
        'id' => 'require',
        'user_id' => 'checkUserId',
        'site_id' => 'require',
        'title' => 'require',
        'realname' => 'require',
        'mobile' => 'checkMobile'
    ];

    protected $message  =   [
        'title' => '缺少店铺名称',
        'realname' => '缺少真实姓名',
    ];

    /**
     * 添加场景验证
     */
    public function sceneAdd (): static
    {
        return $this->remove('id','require');
    }

    /**
     * 编辑场景验证
     */
    public function sceneEdit (): static
    {
        return $this;
    }

    protected function checkUserId($value, $rule, $data): bool|string
    {
//        第一个字符为英文，只能用字母、数字、汉字、下划线，总长度限制在4-12位的用户名
        if (!$value) {
            return "必须选择所属会员";
        }

        $id = StoreManager::where('user_id', $data['user_id'])->value("id");

        if ($id && $id!=$data['id']){
            return "该会员已绑定店长，请选择其他会员";
        }
        return true;
    }


    protected function checkMobile($value, $rule, $data=[]): bool|string
    {
        // 验证手机号
        if (!$value){
            return "必须填写手机号码";
        }

        if ($value && !validateMobile($value)){
            return "手机号码格式错误";
        }
//        if ($value){
//            $id = User::where('site_id', $data['site_id'])->where('mobile', $value)->value('id');
//            if ($id && $id!=$data['id']){
//                return "手机号码已被占用，请更换其他手机号";
//            }
//        }

        return true;
    }

}
